package com.jing21.learn.elasticsearch.intf.enums;

/**
 * 查询过滤方式
 *
 * @author zhengjing
 * @version 1.0
 * @date: 2017/10/20 14:50
 */
public enum FilterType {

    /**
     * 习语匹配 不会分词
     */
    MATCH_PHRASE("match_phrase"),
    /**
     * 分词查询
     */
    MATCH("match"),
    /**
     * 精确匹配
     */
    TERM("term"),
    /**
     * 通配符匹配  eg. 43* 4309* *2233*
     */
    WILDCARD("wildcard"),
    /**
     * 正则匹配  eg.W[0-9].+
     */
    REGEXP("regexp"),
    /**
     * 精确匹配多个值
     */
    TERMS("terms"),
    /**
     * 范围 需要和 FieldValueStrategy 配合使用
     *  eg.
     *    @ESField(value = "id",query = FilterType.RANGE,valuePolicy = FieldValuePolicy.RANGE_LTE)
     */
    RANGE("range");

    private String keyword;

    public String getKeyword() {
        return keyword;
    }

    FilterType(String keyword) {
        this.keyword = keyword;
    }
}
